#pragma once

#include "Includes.h"
#include "Engine/AuxTypes.h"
#include "Engine/RenderGlobals.h"

class CRasterizerState
{
protected:
    D3DFILLMODE  m_uFillMode;
    D3DCULL  m_uCullMode;
    mInt   m_iDepthBias;
    mFloat m_fDepthBiasClamp;
    mFloat m_fSlopeScaledDepthBias;
    mBool  m_bAntialiasedLineEnable;

    mBool  m_bNeedUpdate;
    CRasterizerState                  ( );

public:
    static CRasterizerState *CreateRS ( );
    void SetFillMode                  ( D3DFILLMODE a_Mode );
    void SetCullMode                  ( D3DCULL     a_Mode );
    void SetDepthBias                 ( mInt   a_iBias     );
    void SetSlopeScaledDepthBias      ( mFloat a_fSSDB     );
    void SetAntialiasedLine           ( mBool  a_bValue    );
    virtual void Setup                ( ) = 0;
};